<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	template="./templates/main.xhtml">

	<ui:define name="title">
		Detalle factura
	</ui:define>

	<ui:define name="content">

		<f:metadata>
			<f:event type="preRenderView"
				listener="#{detalleFacturaBean.loadBean}" />
			<f:viewParam name="idFactura" value="#{detalleFacturaBean.idFactura}" />
			<f:event type="preRenderView"
				listener="#{detalleFacturaBean.loadFactura}" />
		</f:metadata>

		<h:form prependId="false" id="datosFactura">

			<p:spacer height="10" />

			<h:panelGrid columns="4" cellpadding="4" width="100%"
				styleClass="ui-widget-content" columnClasses="label, value">

				<h:outputText value="Porveedor:" styleClass="negrita" />
				<h:outputText value="#{detalleFacturaBean.currentFactura.proveedor}" />

				<h:outputText value="#{msg['label.codigo']}:" styleClass="negrita" />
				<h:outputText value="#{detalleFacturaBean.currentFactura.codigo}" />

				<h:outputText value="#{msg['label.periodoFacturacionDesde']}:"
					styleClass="negrita" />
				<h:outputText
					value="#{detalleFacturaBean.currentFactura.fechaDesde}">
					<f:convertDateTime pattern="dd/MM/yyyy" />
				</h:outputText>

				<h:outputText value="hasta:" styleClass="negrita" />
				<h:outputText
					value="#{detalleFacturaBean.currentFactura.fechaHasta}">
					<f:convertDateTime pattern="dd/MM/yyyy" />
				</h:outputText>

			</h:panelGrid>

			<p:spacer height="15" />

			<p:dataTable id="lineas"
				rowEditListener="#{detalleFacturaBean.rowEditLineaFacturaListener}"
				onRowEditUpdate="growl lineas"
				value="#{detalleFacturaBean.currentFactura.lineas}" var="linea"
				emptyMessage="#{msg['label.sinLineas']}">

				<f:facet name="header">
					<p:commandButton image="nuevo" type="button"
						value="#{msg['label.nuevaLinea']}"
						onclick="dlgAltaLineaFactura.show()" />
				</f:facet>

				<p:column sortBy="#{linea.lineaTelefonica.numero}"
					style="text-align:center">
					<f:facet name="header">
						<h:outputText value="#{msg['label.numeroLinea']}" />
					</f:facet>
					<h:outputText value="#{linea.lineaTelefonica.numero}" />
				</p:column>

				<p:column sortBy="#{linea.lineaTelefonica.titular.presentacion}">
					<f:facet name="header">
						<h:outputText value="Titular" />
					</f:facet>
					<h:outputText value="#{linea.lineaTelefonica.titular.presentacion}" />
				</p:column>

				<p:column sortBy="#{linea.lineaTelefonica.extension}"
					style="text-align:center">
					<f:facet name="header">
						<h:outputText value="#{msg['label.extension']}" />
					</f:facet>
					<h:outputText value="#{linea.lineaTelefonica.extension}" />
				</p:column>

				<p:column sortBy="#{linea.importeConsumido}"
					style="text-align:center"
					headerText="#{msg['label.totalConsumido']}">

					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{linea.importeConsumido}"
								converter="javax.faces.Double" />
						</f:facet>
						<f:facet name="input">
							<h:inputText value="#{linea.importeConsumido}"
								converter="javax.faces.Double" />
						</f:facet>
					</p:cellEditor>

				</p:column>

				<p:column sortBy="#{linea.puntosAcumulados}"
					style="text-align:center">
					<f:facet name="header">
						<h:outputText value="Puntos acumulados" />
					</f:facet>
					<h:outputText value="#{linea.puntosAcumulados}"
						converter="javax.faces.Integer" />
				</p:column>

				<p:column sortBy="#{linea.importeIva}" style="text-align:center">
					<f:facet name="header">
						<h:outputText value="IVA" />
					</f:facet>
					<h:outputText value="#{linea.importeIva}" />
				</p:column>

				<p:column sortBy="#{linea.importeTotal}" style="text-align:center">
					<f:facet name="header">
						<h:outputText value="Total" />
					</f:facet>
					<h:outputText value="#{linea.importeTotal}"
						converter="javax.faces.Double" />
				</p:column>

				<p:column>
					<f:facet name="header">
						<h:outputText value="" />
					</f:facet>
					<p:rowEditor />
				</p:column>

				<p:columnGroup type="footer" id="footer">

					<p:row>

						<p:column colspan="3" footerText="Totales:"
							style="text-align:right" />

						<p:column
							footerText="#{detalleFacturaBean.total.totalConsumidoFormateado}"
							style="text-align:center" />

						<p:column
							footerText="#{detalleFacturaBean.total.puntosAcumulados}"
							style="text-align:center" />

						<p:column
							footerText="#{detalleFacturaBean.total.totalIvaFormateado}"
							style="text-align:center" />

						<p:column
							footerText="#{detalleFacturaBean.total.totalFacturadoFormateado}"
							style="text-align:center" />

						<p:column style="text-align:center" />

					</p:row>

				</p:columnGroup>

				<f:facet name="footer">
					<p:commandButton image="actualizar" immediate="true"
						action="#{altaFacturaBean.actualizarTotales}"
						title="Actualizar totales" update="footer @form"
						value="Actualizar totales" />
				</f:facet>


			</p:dataTable>

			<p:spacer height="15" />

			<h:panelGrid columns="6" cellpadding="4" id="totales">

				<h:outputText value="IVA aplicado:" styleClass="negrita" />
				<h:outputText value="#{detalleFacturaBean.currentFactura.iva}"
					styleClass="resultado">
					<f:convertNumber type="percent" />
				</h:outputText>

				<h:outputText value="Total factura:" styleClass="negrita" />
				<h:inputText value="#{detalleFacturaBean.currentFactura.total}"
					styleClass="resultado" converter="javax.faces.Double" />

				<h:outputText value="Total puntos acumulados:" styleClass="negrita" />
				<h:inputText
					value="#{detalleFacturaBean.currentFactura.puntosAcumulados}"
					styleClass="resultado" converter="javax.faces.Integer" />

			</h:panelGrid>

			<br />

			<p:commandButton image="guardar" value="Guardar cambios"
				update="@form growl" actionListener="#{detalleFacturaBean.guardar}" />

			<p:button value="Volver" image="volver" outcome="facturas" />

		</h:form>

		<h:form prependId="false" id="datosAltaLinea">

			<p:dialog header="#{msg['label.datosNuevaLinea']}" width="600"
				height="210" widgetVar="dlgAltaLineaFactura" resizable="true"
				showEffect="clip" hideEffect="clip" modal="true">

				<h:panelGrid columns="2" id="datosAlta" cellpadding="4"
					styleClass="ui-widget-content" columnClasses="label, value">

					<h:outputText value="Importe consumido:" />
					<h:inputText id="importeConsumido"
						value="#{detalleFacturaBean.nuevaLineaFactura.importeConsumido}" />

					<h:outputLabel for="numero" value="#{msg['label.numeroAsociado']}:" />
					<h:selectOneMenu id="numero" converter="lineaTelefonicaConverter"
						value="#{detalleFacturaBean.nuevaLineaFactura.lineaTelefonica}">
						<f:selectItems value="#{detalleFacturaBean.lineasTelefonicas}"
							itemValue="#{n}"
							itemLabel="#{n.numero} (#{n.extension}) - #{n.titular.presentacion}"
							var="n" />
					</h:selectOneMenu>

				</h:panelGrid>

				<br />

				<p:commandButton image="guardar" value="Insertar linea"
					update="datosAltaLinea lineas growl"
					oncomplete="dlgAltaLineaFactura.hide()"
					actionListener="#{detalleFacturaBean.anadirLinea}" />

				<p:commandButton image="volver" value="Volver"
					onclick="dlgAltaLineaFactura.hide()" />

			</p:dialog>

		</h:form>

	</ui:define>

</ui:composition>